<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Twisted Glossary</title>
</head>

<body>
<h1>Twisted Glossary</h1>

<dl>

<dt><a name="adaptee">adaptee</a></dt>
<dd>
  An object that has been adapted, also called <q>original</q>.  See <a
  href="#Adapter">Adapter</a>.
</dd>

<dt><a name="Adapter"><code noexpand="1" class="API" base="twisted.python.components">Adapter</code></a></dt>
<dd>
  An object whose sole purpose is to implement an Interface for another object.
  See <a href="components.xhtml">Interfaces and Adapters</a>.
</dd>

<dt><a name="Application"><code noexpand="1" class="API" base="twisted.application.service">Application</code></a></dt>
<dd>
  A <code class="API">twisted.application.service.Application</code>.  There are
  HOWTOs on <a href="basics.xhtml">creating and manipulating</a> them as a
  system-administrator, as well as <a href="application.xhtml">using</a> them in
  your code.
</dd>

<dt><a name="Avatar">Avatar</a></dt>
<dd>
   (from <a href="#Cred">Twisted Cred</a>) business logic for specific user.
   For example, in <a href="#PB">PB</a> these are perspectives, in pop3 these
   are mailboxes, and so on.
</dd>

<dt><a name="Banana"><code noexpand="1" class="API" base="twisted.spread.banana">Banana</code></a></dt>
<dd>
  The low-level data marshalling layer of <a href="#Spread">Twisted Spread</a>.
  See <code class="API">twisted.spread.banana</code>.
</dd>

<dt><a name="Broker"><code noexpand="1" class="API" base="twisted.spread.pb">Broker</code></a></dt>
<dd>
  A <code class="API">twisted.spread.pb.Broker</code>, the object request
  broker for <a href="#Spread">Twisted Spread</a>.
</dd>

<dt><a name="cache">cache</a></dt>
<dd>
  A way to store data in readily accessible place for later reuse. Caching data
  is often done because the data is expensive to produce or access. Caching data
  risks being stale, or out of sync with the original data.
</dd>

<dt><a name="component">component</a></dt>
<dd>
  A special kind of (persistent) <code class="API"
  base="twisted.python.components">Adapter</code> that works with a <code
  class="API">twisted.python.components.Componentized</code>.  See also <a
  href="components.xhtml">Interfaces and Adapters</a>.
</dd>

<dt><a name="Componentized"><code noexpand="1" class="API" base="twisted.python.components">Componentized</code></a></dt>
<dd>
  A Componentized object is a collection of information, separated
  into domain-specific or role-specific instances, that all stick
  together and refer to each other.
  Each object is an <code class="API"
  base="twisted.python.components">Adapter</code>, which, in the
  context of Componentized, we call <q>components</q>.  See also <a
  href="components.xhtml">Interfaces and Adapters</a>.
</dd>

<dt><a name="conch"><code noexpand="1" class="API" base="twisted">conch</code></a></dt>
<dd>Twisted's SSH implementation.</dd>

<dt><a name="Connector">Connector</a></dt>
<dd>
  Object used to interface between client connections and protocols, usually
  used with a <code class="API">twisted.internet.protocol.ClientFactory</code>
  to give you control over how a client connection reconnects.  See <code
  class="API">twisted.internet.interfaces.IConnector</code> and <a
  href="clients.xhtml">Writing Clients</a>.
</dd>

<dt><a name="Consumer">Consumer</a></dt>
<dd>
  An object that consumes data from a <a href="#Producer">Producer</a>.  See 
  <code class="API">twisted.internet.interfaces.IConsumer</code>.
</dd>

<dt><a name="Cred">Cred</a></dt>
<dd>
  Twisted's authentication API, <code class="API">twisted.cred</code>.  See 
  <a href="cred.xhtml">Introduction to Twisted Cred</a> and 
  <a href="pb-cred.xhtml">Twisted Cred usage</a>.
</dd>

<dt><a name="credentials">credentials</a></dt>
<dd>
  A username/password, public key, or some other information used for
  authentication.
</dd>

<dt><a name="credential-checker">credential checker</a></dt>
<dd>
  Where authentication actually happens.  See 
  <code class="API" base="twisted.cred.checkers">ICredentialChecker</code>.
</dd>

<dt><a name="CVSToys">CVSToys</a></dt>
<dd>A nifty set of tools for CVS, available at 
<a href="http://twistedmatrix.com/users/acapnotic/wares/code/CVSToys/">http://twistedmatrix.com/users/acapnotic/wares/code/CVSToys/</a>.</dd>

<dt><a name="Deferred"><code class="API" base="twisted.internet.defer">Deferred</code></a></dt>
<dd>
  A instance of <code class="API">twisted.internet.defer.Deferred</code>, an
  abstraction for handling chains of callbacks and error handlers
  (<q>errbacks</q>).
  See the <a href="defer.xhtml">Deferring Execution</a> HOWTO.
</dd>

<dt><a name="Enterprise">Enterprise</a></dt>
<dd>
  Twisted's RDBMS support.  It contains <code
  class="API">twisted.enterprise.adbapi</code> for asynchronous access to any
  standard DB-API 2.0 module, and <code
  class="API">twisted.enterprise.row</code>, a <q><a href="#ROW">Relational
  Object Wrapper</a></q>.  See <a href="enterprise.xhtml">Introduction to
  Twisted Enterprise</a> and <a href="row.xhtml">Twisted Enterprise Row
  Objects</a> for more details.
</dd>

<dt><a name="errback">errback</a></dt>
<dd>
  A callback attached to a <a href="#Deferred">Deferred</a> with
  <code>.addErrback</code> to handle errors.
</dd>

<dt><a name="Factory"><code noexpand="1" class="API" base="twisted.internet.protocol">Factory</code></a></dt>
<dd>
  In general, an object that constructs other objects.  In Twisted, a Factory
  usually refers to a <code
  class="API">twisted.internet.protocol.Factory</code>, which constructs
  <a href="#Protocol">Protocol</a> instances for incoming or outgoing
  connections.  See <a href="servers.xhtml">Writing Servers</a> and <a
  href="clients.xhtml">Writing Clients</a>.
</dd>

<dt><a name="Failure"><code noexpand="1" class="API" base="twisted.python.failure">Failure</code></a></dt>
<dd>
  Basically, an asynchronous exception that contains traceback information;
  these are used for passing errors through asynchronous callbacks.
</dd>

<dt><a name="im">im, t-im</a></dt>
<dd>
  Abbreviation of <q>(Twisted) <a href="#InstanceMessenger">Instance
  Messenger</a></q>.
  </dd>

<dt><a name="InstanceMessenger">Instance Messenger</a></dt>
<dd>
  Instance Messenger is a multi-protocol chat program that comes with
  Twisted.  It can communicate via TOC with the AOL servers, via IRC, as well as
  via <a href="#PerspectiveBroker">PB</a> with <a href="#Words">Twisted
  Words</a>.  See <code class="API">twisted.im</code>.
</dd>

<dt><a name="Interface"><code noexpand="1" class="API" base="twisted.python.components">Interface</code></a></dt>
<dd>
  A class that defines and documents methods that a class conforming to that
  interface needs to have.  A collection of core twisted.internet interfaces can
  be found in <code class="API">twisted.internet.interfaces</code>.  See also <a
  href="components.xhtml">Interfaces and Adapters</a>.
</dd>

<dt><a name="Jelly">Jelly</a></dt>
<dd>
  The serialization layer for <a href="#Spread">Twisted Spread</a>, although it
  can be used seperately from Twisted Spread as well.  It is similar in purpose
  to Python's standard <code>pickle</code> module, but is more
  network-friendly, and depends on a separate marshaller (<a
  href="#Banana">Banana</a>, in most cases).  See <code
  class="API">twisted.spread.jelly</code>.
</dd>

<dt><a name="Lore">Lore</a></dt>

<dd><a href="http://twistedmatrix.com/projects/lore/">Lore</a> is
Twisted's documentation system.  The source format is a subset of
XHTML, and output formats include HTML and LaTeX.</dd>

<dt><a name="Manhole">Manhole</a></dt>
<dd>
  A debugging/administration interface to a Twisted application.
</dd>

<dt><a name="Microdom">Microdom</a></dt>
<dd>
  A partial DOM implementation using <a href="#SUX">SUX</a>.  It is simple and
  pythonic, rather than strictly standards-compliant.  See <code
  class="API">twisted.web.microdom</code>.
</dd>

<dt><a name="Names">Names</a></dt>
<dd>Twisted's DNS server, found in <code class="API">twisted.names</code>.</dd>

<dt><a name="Nevow">Nevow</a></dt>
<dd>The successor to <a href="#Woven">Woven</a>, a web framework
available at <a href="http://nevow.com/">nevow.com</a>.
</dd>

<dt><a name="PB">PB</a></dt>
<dd>
  Abbreviation of <q><a href="#PerspectiveBroker">Perspective
  Broker</a></q>.
</dd>

<dt><a name="PerspectiveBroker">Perspective Broker</a></dt>
<dd>
  The high-level object layer of Twisted <a href="#Spread">Spread</a>,
  implementing semantics for method calling and object copying, caching, and
  referencing.  See <code class="API">twisted.spread.pb</code>.
</dd>

<dt><a name="Portal">Portal</a></dt>
<dd>
  Glues <a href="#credential-checker">credential checkers</a> and 
  <a href="#realm">realm</a>s together.
</dd>

<dt><a name="Producer">Producer</a></dt>
<dd>
  An object that generates data a chunk at a time, usually to be processed by a
  <a href="#Consumer">Consumer</a>.  See 
  <code class="API">twisted.internet.interfaces.IProducer</code>.
</dd>

<dt><a name="Protocol"><code noexpand="1" class="API" base="twisted.internet.protocol">Protocol</code></a></dt>
<dd>
  In general each network connection has its own Protocol instance to manage
  connection-specific state.  There is a collection of standard
  protocol implementations in <code class="API">twisted.protocols</code>.  See
  also <a href="servers.xhtml">Writing Servers</a> and <a
  href="clients.xhtml">Writing Clients</a>.
</dd>

<dt><a name="PSU">PSU</a></dt>
<dd>There is no PSU.</dd>

<dt><a name="Reactor">Reactor</a></dt>
<dd>
  The core event-loop of a Twisted application.  See 
  <a href="reactor-basics.xhtml">Reactor Basics</a>.
</dd>

<dt><a name="Reality">Reality</a></dt>
<dd>See <q><a href="#TwistedReality">Twisted Reality</a></q></dd>

<dt><a name="realm">realm</a></dt>
<dd>
  (in <a href="#Cred">Twisted Cred</a>) stores <a href="#Avatar">avatars</a>
  and perhaps general business logic.  See 
  <code class="API" base="twisted.cred.portal">IRealm</code>.
</dd>

<dt><a name="Resource"><code noexpand="1" class="API" base="twisted.web.resource">Resource</code></a></dt>
<dd>
  A <code class="API">twisted.web.resource.Resource</code>, which are served
  by Twisted Web.  Resources can be as simple as a static file on disk, or they
  can have dynamically generated content.
</dd>

<dt><a name="ROW">ROW</a></dt>
<dd>
  <em>R</em>elational <em>O</em>bject <em>W</em>rapper, an object-oriented
  interface to a relational database.  See <a href="row.xhtml">Twisted Enterprise
  Row Objects</a>.
</dd>

<dt><a name="Service">Service</a></dt>
<dd>
  A <code class="API">twisted.application.service.Service</code>.  See <a
  href="application.xhtml">Application howto</a> for a description of how they
  relate to <a href="#Application">Applications</a>. 
</dd>

<dt><a name="Spread">Spread</a></dt>
<dd><a href="http://twistedmatrix.com/products/spread">Twisted Spread</a> is
Twisted's remote-object suite.  It consists of three layers: 
<a href="#PerspectiveBroker">Perspective Broker</a>, <a href="#Jelly">Jelly</a>
and <a href="#Banana">Banana.</a>  See <a href="pb.xhtml">Writing Applications
with Perspective Broker</a>.</dd>

<dt><a name="SUX">SUX</a></dt>
<dd><em>S</em>mall <em>U</em>ncomplicated <em>X</em>ML, Twisted's simple XML
parser written in pure Python.  See 
<code class="API">twisted.protocols.sux</code>.</dd>

<dt><a name="TAP">TAP</a></dt>
<dd><em>T</em>wisted <em>A</em>pplication <em>P</em>ickle, or simply just a 
<em>T</em>wisted <em>AP</em>plication.  A serialised application that created
with <code>mktap</code> and runnable by <code>twistd</code>.  See 
<a href="basics.xhtml">Using the Utilities</a>.</dd>

<dt><a name="Trial">Trial</a></dt>
<dd><code class="API">twisted.trial</code>, Twisted's unit-testing framework,
modelled after <a href="http://pyunit.sourceforge.net/">pyunit</a>.  See also
<a href="testing.xhtml">Writing tests for Twisted code</a>.</dd>

<dt><a name="TwistedMatrixLaboratories">Twisted Matrix Laboratories</a></dt>
<dd>The team behind Twisted.  
<a href="http://twistedmatrix.com/">http://twistedmatrix.com/</a>.</dd>

<dt><a name="TwistedReality">Twisted Reality</a></dt>
<dd>
  In days of old, the <a
  href="http://twistedmatrix.com/products/reality">Twisted Reality</a>
  multiplayer text-based interactive-fiction system was the main focus of Twisted
  Matrix Labs; Twisted, the general networking framework, grew out of Reality's
  need for better network functionality. Twisted Reality has since been broken
  off into a separate project.
</dd>

<dt><a name="usage"><code noexpand="1" class="API" base="twisted.python">usage</code></a></dt>
<dd>The <code class="API">twisted.python.usage</code> module, a replacement for
the standard <code>getopt</code> module for parsing command-lines which is much
easier to work with.  See <a href="options.xhtml">Parsing command-lines</a>.</dd>

<dt><a name="Words">Words</a></dt>
<dd>Twisted Words is a multi-protocol chat server that uses the 
<a href="#PerspectiveBroker">Perspective Broker</a> protocol as its native
communication style.  See <code class="API">twisted.words</code>.</dd>

<dt><a name="Woven">Woven</a></dt>
<dd><em>W</em>eb <em>O</em>bject <em>V</em>isualization <em>En</em>vironment.
A deprecated web templating system based on XML and the Model-View-Controller design
pattern.  This has been deprecated in favor of <a href="http://nevow.com/">Nevow</a>.</dd>

</dl>

</body></html>
